package ModelLayer;
import java.util.ArrayList;
/**
 * OrdreContainer er containeren, hvor alle ordrene bliver opbevaret
 * 
 * @author Zohdi
 * @version (a version number or a date)
 */
public class OrdreContainer
{
    private static OrdreContainer instance;
    private ArrayList<Ordre> ordrer;
    private Ordre o;
    private Delordre d;

    /**
     * Constructor for objects of class OrdreContainer
     */
    private OrdreContainer()
    {
        ordrer = new ArrayList<Ordre>();
    }

    /**
     *  Singleton konstruktør der laver en instans af OrdreContainer hvis ingen findes
     */
    public static OrdreContainer getInstance()
    {
        if(instance == null)
        {
            instance = new OrdreContainer();
        }
        return instance;
    }

    /**
     *  Tilføjer ordre til arrayet
     *  
     *  @param ordre ordre du tilføjer til arrayet
     */
    public void addOrdre(Ordre ordre)
    {
        ordrer.add(ordre);
    }

    /**
     *  Sletter ordren med den specifikke id
     *  
     *  @param id sletter den specifikke ordre i arrayet vha parametren id
     */
    public void deleteOrdre(int id)
    {
        ordrer.remove(findOrdre(id).getID());
    }

    /**
     *  Finder ordren med den specifikke id
     *  
     *  @param id 
     *  @return den fundne ordre med det specifikke navn
     * 
     */
    public Ordre findOrdre(int id)
    {
        Ordre ordre = null;
        for(int i = 0; i < ordrer.size(); i++)
        {
            if(ordrer.get(i).getID() == id)
            {
                ordre = ordrer.get(i);
            }
        }
        return ordre;
    }

    /**
     *   Finder en specifik delordre
     */
    public String getDelordrer(int id)
    {
        String string = findOrdre(id).getDelordrer();
        return string;
    }
    
    private Delordre findDelordre(int id, String navn)
    {
        Delordre d = findOrdre(id).findDelordre(navn);
        return d;
    }

    /**
     *  Ændring af en delordre
     */
    public void setDelordre(int id,int i, Vare vare)
    {
        findOrdre(id).setDelordre(i,vare);
    }

    /**
     *  Sletning af en delordre
     */
    public void deleteDelordre(int id, String navn)
    {
        findOrdre(id).sletDelordre(navn);
    }
}
